package com.zx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zx.pojo.Right;
import com.zx.pojo.Role;
import com.zx.pojo.User;

import java.util.List;

/**
* @description 针对表【sys_role】的数据库操作Service
* @createDate 2022-11-30 11:01:02
*/
public interface RoleService extends IService<Role> {

    /**
     * 获得所有角色
     *
     * @return
     */
    List<Role> getAllRole();

    /**
     * 分页获得角色数据
     *
     * @param roleName
     * @param page
     * @return
     */
    IPage<Role> findRoles(String roleName, Page page);

    /**
     * 保存角色以及其对应的权限关系数据
     *
     * @param role 角色信息
     * @param rightCodes 对应权限关系
     * @return
     */
    boolean saveRoleAndRight(Role role, String[] rightCodes);

    /**
     * 删除角色以及对于的权限关系数据
     *
     * @param roleId 角色ID
     * @return
     */
    boolean removeRoleAndRight(Long roleId);

    Role findRoleByUsers(User user);

    List<Right> findRightsByRole(Role role);
}
